package model;


import interfejsy.IWsp;
import interfejsy.logika.Operacje;

import java.util.HashMap;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
import java.util.TreeSet;

import android.content.Context;

public class KlasaStatyczna {
	 //////////////////////
    IWsp iwsp=null;
    ////////////////////////
public static 
	Set<LUDKI> ludki=new TreeSet<LUDKI>();
public static 
	Set<Lokalizacje> lokalizacje=new TreeSet<Lokalizacje>();
public static 
	Set<Pokoj> pokoje=new TreeSet<Pokoj>();
public static 
	Set<Rezerwacje> rezerwacje =new TreeSet<Rezerwacje>();
public static 
	Set<WSP> wsp=new TreeSet<WSP>();
public static int 
	status=0;

/**
 * 0 -pobierz
 * 1- dodaj
 * 2-usun
 * 
 */
public static int 
	TYP_OPERACJI=0;
private static IWsp i=null;

private static Map<String,Object> 
	mapa=new HashMap<String, Object>();

/**
 * stworzenie nowego obiektu
 * i mapy
 * @return IWsp
 */
private static void i()
{
	if( i==null)
		i=new Operacje();
	else
	{
		i=null;
		i=new Operacje();
	}
}
/**
 * przygotowanie mapy
 * @param h
 */
private static void xx(String h)
{
	i();
	Lokalizacje v=new Lokalizacje(h);
	v.setNazwa(h);
	
	mapa.put("OBIEKT", v);
	mapa.put("key",POLATABEL.LOKALIZACJE_NR);
	typoperacji();
		
}
private static void typoperacji()
{
	mapa.put("OPERACJA",
	(TYP_OPERACJI==1)?"+":(TYP_OPERACJI==2)?"-":"@");	
}
public static void przekaz(String b)
{
	xx(b);
	i.operacja(mapa);
	while (i.status()!=-1) {}

}
public static void GET(String b)
{
	xx(b);
	i.operacja(mapa);
	while (i.status()!=-1) {}
}
public static String pobierz_rezerwacje(String id_obiektu)
{
    int g=DATA_REZERWACJI.DATA_PL.shout();
    return Rezerwacje.Format.FORMAT_(id_obiektu);
}
/**
* pobierz wszystkie lokalizacje ktorych zoom jest ok
* 
* @param mapa
*/
public Set<Lokalizacje> ZomLokalizacjiWlasciwy(int zom)
{
    Set<Lokalizacje> l=new TreeSet<Lokalizacje>();
    return l;
}
/*
* Map<String,Object>
*/
public void aktualizujobiekt(Map<String,Object> mapa)
{
    if(mapa.containsKey("pokoj"))
    {
            Pokoj p=KlasaStatyczna.getPokoj("moj pokoj");
            p.aktualizuj(
                            (Pokoj)mapa.get("pokoj"));
    }
    if(mapa.containsKey("lokalizacja"))
    {
            Lokalizacje temp=(Lokalizacje)mapa.get("lokalizacja");
            Pokoj p=KlasaStatyczna.getPokoj("moja lokaliyacja");
            p.aktualizuj(
                            (Pokoj)mapa.get("pokoj"));
    }
    //dodane z domu
}
public static Pokoj getPokoj(String nazwa_Pokoju)
{
    Pokoj pokoj_=null;
    for(Pokoj pokoj:KlasaStatyczna.pokoje)
            if( pokoj.nazwa==nazwa_Pokoju)
                    pokoj_=pokoj;
    return pokoj_;
}
public static Lokalizacje getLokalizacje(String nazwa_)
{
    Lokalizacje lla=null;
    for(Lokalizacje ll:KlasaStatyczna.lokalizacje)
            if( ll.nazwa==nazwa_ )
                    lla=ll;;
    return lla;
            
}
// public boolean zapiszZmianezali
//kolejka
Queue<String> myQueue = new PriorityQueue<String>();
{
    myQueue.offer("Ola");
    myQueue.offer("Ola2");
}

/////////////
public static int rezerwujObiekt()
{
    return 2;
}

private static int widok_lokalizacje=-1;

public static int getWidok_lokalizacje() {
    return widok_lokalizacje;
}
public static void setWidok_lokalizacje(int widok_lokalizacje) {
    KlasaStatyczna.widok_lokalizacje = widok_lokalizacje;
}
private static Set<WSP> wspolrzedneosrodkow=new TreeSet<WSP>();
public static void addwsp(WSP a){
    wspolrzedneosrodkow.add(a);
}
public static Set<WSP> getWsp(){
    return wspolrzedneosrodkow;
}
private static String activity;
private static Map<String,Integer>
    //REZERWACJE - 0
    ee=new HashMap<String,Integer>();
static{
    ee.put("REZERWACJE",0);
}
/**
* REZERWACJE - 0
* @return
*/
public static int get(String key ){
    if( ee.containsKey(key))
            return ee.get(key);
    else
            return 1;
}
private static int re;

public static int getRe() {
    return re;
}
public static void setRe(int re) {
    KlasaStatyczna.re = re;
}
public static String getActivity() { return activity; }
public static void setActivity(String h) { KlasaStatyczna.activity = activity; }

private static KlasaStatyczna instancja;
private static String ID_KLIENTA;
static void setIDKLIENTA(String h){
     ID_KLIENTA=h;
}
static String getIDKLIENTA(){
     return ID_KLIENTA;
}
public static KlasaStatyczna get(){
     if(instancja==null)
     {
             return instancja=new KlasaStatyczna();
     }
     else
             return instancja;
     
}
}
